#pragma once
#include <sys/types.h>
#include <sys/stat.h>
#include <iostream>
#include <cerrno>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <fcntl.h>
#include <cstdio>
#include <string>
#define FIFO_FILE "./myfifo"
#define MODE 0664
using namespace std;

enum
{
	FIFO_CREATE_ERR = 1, // 管道创建时失败
	FIFO_DELETE_ERR,	 // 删除文件失败
	FIFO_OPEN_ERR,
};

class Init
{
public:
	Init()
	{
		int n = mkfifo(FIFO_FILE, MODE); // 创建管道
		if (n == -1)
		{
			perror("mkfifo");
			exit(FIFO_CREATE_ERR);
		}
	}

	~Init()
	{
		int m = unlink(FIFO_FILE); // 删除管道
		if (m == -1)
		{
			perror("unlink");
			exit(FIFO_DELETE_ERR);
		}
	}
};